util={};
util.getHeader=function() {
    return {
        "Content-Type": "application/json",
        "authorize": "",
        "timestamp": (new Date()).valueOf()
    };
};
/**
 * 请求工具方法
 * @param requestType
 * @param url
 * @param requestData
 * @param successFunction
 */
util.request=function(requestType,url,requestData,successFunction){
    // Layer.loading();
    $.ajax({
        type:requestType,
        url:url,
        dataType:'json',
        headers:util.getHeader(),
        data:JSON.stringify(requestData),
        success:function(response) {
            if (response.code == -1) {
                // Layer.message('系统异常，请联系管理员','2');
            }else if (response.code == -2) {
                // Layer.message('未登录','5');
            }
            else{
                successFunction(response);
            }
            // layer.closeAll('loading');
        },
        error:function(error){
            // layer.closeAll('loading');
             Msg.errors('服务器异常，请联系管理员')
        }
    });
};
util.requestParams=function(requestType,url,requestData,successFunction){
    // Layer.loading();
    $.ajax({
        type:requestType,
        url:url,
        dataType:'json',
        headers:util.getHeader(),
        data:requestData,
        success:function(response) {
            if (response.code == -1) {
                // Layer.message('系统异常，请联系管理员','2');
            }else if (response.code == -2) {
                // Layer.message('未登录','5');
            }
            else{
                successFunction(response);
            }
            // layer.closeAll('loading');
        },
        error:function(error){
            // layer.closeAll('loading');
            Msg.errors('服务器异常，请联系管理员')
        }
    });

}

/**
 * 部门数据初始化（登陆人部门及下属部门数据）
 * selectId : 下拉选框的id
 * organId : 已选的部门Id
 */
function ajaxGetDept(selectId,organId) {
    $(selectId).find("option").remove();
    $(selectId).append("<option value=''>请选择</option>");
    $.ajax({
        url: sysInfo.basePath + "/rzsc/common/organ_tree_data.do?type=department",
        type: "POST",
        dataType: "json",
        async:true,
        success: function (obj) {
            var depts = obj;
            var html = "";
            depts.forEach(function (e) {
                if(organId != undefined && organId != null  && organId.trim().length >0 && organId == e.id){
                    $(selectId).append("<option value='"+e.id+"' selected>"+e.name+"</option>");
                }else{
                    $(selectId).append("<option value='"+e.id+"'>"+e.name+"</option>");
                }

            });
        }
    });
}

/**
 * 验证是否为空
 */
function checkEmpty(val){
    var check = false;
    if(undefined == val || val == null || val.trim().length == 0 ){
        return false;
    }else{
        check = true;
    }
    return check;
}

/**
 * 判断是否为空
 * @param val
 * @returns {boolean}
 */
function checkIsEmpty(val) {
    if (null !== val && '' !== val && undefined !== val && "null" !== val) {
        return false;
    } else {
        return true;
    }
}

/**
 * 验证文本框是否为空并提示信息
 * @param obj 对象
 * @param msg 提示信息
 * @returns {boolean}
 */
function verifyEmpty(obj,msg){
    var check = false;
    var val = obj.val();
    if(undefined == val || val == null || val.trim().length == 0 ){
        if(obj.attr("class").indexOf("select2-hidden-accessible")>0){
            dggui.dialog.tip(msg,obj.next(),{tipsMore: true});
        }else{
            dggui.dialog.tip(msg,obj,{tipsMore: true});
        }
        return false;
    }else{
        check = true;
    }
    return check;
}

/**
 * 备注长度验证
 * @param obj 对象
 * @param len 限制的长度
 * @param msg 提示信息
 * @returns {boolean}
 */
function verifyRemark(obj,minLen,maxLen,msg){
    var check = false;
    var val = obj.val();
    if(val != undefined && val != null && val.trim().length <= maxLen&&val.trim().length>=minLen){
        check = true;
    }else{
        dggui.dialog.tip(msg,obj,{tipsMore: true});
    }
    return check;
}

/**
 * 验证文本框是否为每月正确的天数(1-31号)并提示信息
 * @param obj 对象
 * @param msg 提示信息
 * @returns {boolean}
 */
function verifyDay(obj,msg){
    var check = false;
    var val = obj.val();
    if(val != undefined && val != null && val.length > 0){
        var reg = /^\d{1,2}$/;
        if(reg.test(val)){
            if(parseInt(val) >= 1 && parseInt(val) <= 31){
                check = true;
            }
        }
    }
    if(!check)
        dggui.dialog.tip(msg,obj,{tipsMore: true});
    return check;
}
/**
 * 验证银行卡号并提示信息
 * @param obj 对象
 * @param msg 提示信息
 * @returns {boolean}
 */
function verifyBankCard(obj,msg){
    var check = false;
    var val = obj.val();
    if(val != undefined && val != null && val.length > 0){
        var reg = /^[0-9]\d*$/;
        if(reg.test(val)){
            check = true;
        }
    }
    if(!check)
        dggui.dialog.tip(msg,obj,{tipsMore: true});
    return check;
}
/**
 * 验证文本框输入的长度并提示信息
 * @param obj 对象
 * @param len 限制的长度
 * @param msg 提示信息
 * @returns {boolean}
 */
function verifyLength(obj,len,msg){
	var check = false;
	var val = obj.val();
	if(val != undefined && val != null && val.length <= len){
		check = true;
	}else{
        dggui.dialog.tip(msg,obj,{tipsMore: true});
	}
	return check;
}

function isTel(obj,msg){//既验证手机号也验证座机号
    var objVal = $(obj).val();
    var MobileNum = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
    var patrn = /^(\d{3,4}\-)?\d{7,8}$/i; // 座机格式是 010-98909899
    var par_tten = /^0(([1-9]\d)|([3-9]\d{2}))\d{8}$/; // 没有中间那段 -的 座机格式是 01098909899
    if(par_tten.test(objVal) || patrn.test(objVal) || MobileNum.test(objVal)){
        return true;
    }else{
        dggui.dialog.tip(msg,obj,{tipsMore: true});
        return false;
    }

};
//==========================================================
//--------------去掉左右空格-----------------------------------
String.prototype.trim = function () {
    return this.replace(/(^\s*)|(\s*$)/g, "");
};
//--------------去掉左空格-------------------------------------
String.prototype.lTrim = function () {
    return this.replace(/(^\s*)/g, "");
};
//--------------去掉右空格-------------------------------------
String.prototype.rTrim = function () {
    return this.replace(/(\s*$)/g, "");
};
//--------------去掉html的空格符------------------------------
String.prototype.hTrim = function () {
    return this.replace(/(\&nbsp\;)/g, "");
};
String.prototype.verifyEmpty = function () {
    if (undefined != this && this.trim().length > 0) {
        return false;
    }
    return true;
}

/**
 * Created by Administrator on 2018/5/9.
 * 操作的公共js
 */

function emptyStringConvert(str) {
    if (null == str || '' == str) {
        return '';
    } else {
        return str;
    }
}

/**
 * 事业部查询数据加载
 */
function syb(obj) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择事业部</option>");
    $.post(sysInfo.basePath + '/rzsc/common/find_all_syb.do', {}, function (result) {
        if (result.code == 0) {
            $.each(result.data, function (i, item) {
                $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
            });
        } else {
            console.log("查询数据错误");
        }
    });
}

/**
 * 生产部门查询数据加载
 */
// function syb(obj) {
//     $(obj).find("option").remove();
//     $(obj).append("<option value=''>请选择生产部门</option>");
//     $.post(sysInfo.basePath + '/rzsc/common/find_all_syb.do', {}, function (result) {
//         if (result.code == 0) {
//             $.each(result.data, function (i, item) {
//                 $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
//             });
//         } else {
//             console.log("查询数据错误");
//         }
//     });
// }


/**
 * 查询字典接口
 * @param obj    下拉框对象
 * @param code   编码
 * @param status 状态 1：启用，0：禁用，无：所有
 * @param type   1：根据分类编码查询下级第一级分类（用于Select选择）
 *               2：根据分类编码查询所有下级分类（用于Tree选择无父级的）
 *               3：根据分类编码查询所有下级分类包含自己（用于Tree选择有父级的）
 * @param level  查询深度，如（1，2，3）表示查询到下面第几级
 * @param isCode true 返回Code,false 返回id
 * @return 字典集合
 */
function commonTreeBookCode(obj, code, status, type, level, isCode,value) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/common/tree_book_list.do', {code: code, status: status, type: type, level: level}, function (result) {
        if (result.code == 0) {
            if (true == isCode) {
                $.each(result.data, function (i, item) {
                    var sel = "";
                    if(value==item.code){
                        sel = "selected";
                    }
                    $(obj).append("<option value='" + item.code + "' "+sel+">" + item.name + "</option>");
                });
            }
            if (false == isCode) {
                var sel = "";
                if(value==item.id){
                    sel = "selected";
                }
                $.each(result.data, function (i, item) {
                    $(obj).append("<option value='" + item.id + "' "+sel+">" + item.name + "</option>");
                });
            }
        } else {
            console.log("查询数据错误");
        }
    });

}
/**
 * 查询字典接口
 * @param obj    下拉框对象
 * @param code   编码
 * @param status 状态 1：启用，0：禁用，无：所有
 * @param type   1：根据分类编码查询下级第一级分类（用于Select选择）
 *               2：根据分类编码查询所有下级分类（用于Tree选择无父级的）
 *               3：根据分类编码查询所有下级分类包含自己（用于Tree选择有父级的）
 * @param level  查询深度，如（1，2，3）表示查询到下面第几级
 * @param isCode true 返回Code,false 返回id
 * @param checkVal 需要选中的值
 * @return 字典集合
 */
function commonTreeBookCodeAndCheck(obj, code, status, type, level, isCode,checkVal) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/common/tree_book_list.do', {code: code, status: status, type: type, level: level}, function (result) {
        if (result.code == 0) {
            if (true == isCode) {
                $.each(result.data, function (i, item) {
                    if(item.code == checkVal)
                        $(obj).append("<option value='" + item.code + "' selected='selected'>" + item.name + "</option>");
                    else
                        $(obj).append("<option value='" + item.code + "'>" + item.name + "</option>");
                });
            }
            if (false == isCode) {
                $.each(result.data, function (i, item) {
                    if(item.id == checkVal)
                        $(obj).append("<option value='" + item.id + "' selected='selected'>" + item.name + "</option>");
                    else
                        $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                });
            }
        } else {
            console.log("查询数据错误");
        }
    });

}
/**
 * 底单专用
 */
function commonTreeBookCodeUnder(obj, code, status, type, level, isCode) {
    obj.find("option").remove();
    obj.append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/common/tree_book_list.do', {code: code, status: status, type: type, level: level}, function (result) {
        if (result.code == 0) {
            if (true == isCode) {
                $.each(result.data, function (i, item) {
                    obj.append("<option value='" + item.code + "'>" + item.name + "</option>");
                });
            }
            if (false == isCode) {
                $.each(result.data, function (i, item) {
                    obj.append("<option value='" + item.id + "'>" + item.name + "</option>");
                });
            }
        } else {
            console.log("查询数据错误");
        }
    });

}

/**
 * 根据业态code选择产品
 */
function initProductCode(obj,ytCode) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    var is=checkIsEmpty(ytCode);
    if(!is){
        $.post(sysInfo.basePath + '/rzsc/common/find_product.do', {ytCode: ytCode}, function (result) {
            if (result.code == 0) {
                $.each(result.data, function (i, item) {
                    $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                });
            } else {
                console.log("查询数据错误");
            }
        });
    }

};

/**
 * 根据业态code选择产品
 * 默认选中defaultCode==id
 */
function initProductCodeWithCode(obj,ytCode,defaultCode) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    var is=checkIsEmpty(ytCode);
    if(!is){
        $.post(sysInfo.basePath + '/rzsc/common/find_product.do', {ytCode: ytCode}, function (result) {
            if (result.code == 0) {
                $.each(result.data, function (i, item) {
                    if(defaultCode ==item.id){
                        $(obj).append("<option value='" + item.id + "' selected >" + item.name + "</option>");
                    }else {
                        $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                    }

                });
            } else {
                console.log("查询数据错误");
            }
        });
    }

};

//根据角色初始化人员roleCode：角色code，type：类型  role 查询该角色用户，division：当前登录人所在事业部的该角色用户，department:当前登录人所在部门及以下的该角色用户
//初始化在职人员
function initUser(roleCode,type,obj,orgIds) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/common/find_user_choose.do', {roleCode: roleCode,type:type,orgIds:orgIds,locked:0}, function (result) {
        if (result.code == 0) {
            $.each(result.data, function (i, item) {
                $(obj).append("<option value='" + item.id + "'>" + item.realName + "" + item.loginName + "</option>");
            });
        } else {
            console.log("查询数据错误");
        }
    });
}

function initUserNoRemove(roleCode,type,obj,orgIds) {
    $.post(sysInfo.basePath + '/rzsc/common/find_user_choose.do', {roleCode: roleCode,type:type,orgIds:orgIds,locked:0}, function (result) {
        if (result.code == 0) {
            $.each(result.data, function (i, item) {
                var before= $(obj).find("option");
                var list = new Array();
                $.each(before, function (i, item) {
                    list.push(item.value);
                });
                if (list.indexOf(item.id)) {
                    $(obj).append("<option value='" + item.id + "'>" + item.realName + "" + item.loginName + "</option>");
                    console.log("添加");
                }
            });
        } else {
            console.log("查询数据错误");
        }
    });
}
function initUserDimission(roleCode,type,obj,locked) {
    $(obj).find("option").remove();
    $.post(sysInfo.basePath + '/rzsc/common/find_user_choose.do', {roleCode: roleCode,type:type,locked:locked}, function (result) {
        if (result.code == 0) {
            $(obj).append("<option value=''>请选择</option>");
            $.each(result.data, function (i, item) {
                $(obj).append("<option value='" + item.id + "'>" + item.realName + "" + item.loginName + "</option>");
            });
        } else {
            console.log("查询数据错误");
        }
    });
}

//初始化渠道
function initChannel(obj,produtId,defaultCode) {
        $(obj).find("option").remove();
        $(obj).append("<option value=''>请选择</option>");
        var is=checkIsEmpty(produtId);
    if (!is) {
        $.post(sysInfo.basePath + '/rzsc/processing_order/channel_by_proid.do', {id: produtId}, function (result) {
            if (result.code == 0) {
                $.each(result.data, function (i, item) {
                    if (defaultCode == item.id) {
                        $(obj).append("<option value='" + item.id + "' selected>" + item.name + "</option>");
                    }else{
                        $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                    }
                });
            } else {
                console.log("查询数据错误");
            }
        });
    }

};


/**
 * 根据商品id初始化渠道，传入默认值。默认选中
 */
/*function initChannelWithCode(obj,goodsId,defaultCode) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    var is=checkIsEmpty(goodsId);
    if (checkIsEmpty(defaultCode)) {
        defaultCode = null;
    }
    if (!is) {
        $.post(sysInfo.basePath + '/rzsc/common/find_channels_by_goodsId.do', {goodsId: goodsId}, function (result) {
            if (result.code == 0) {
                $.each(result.data, function (i, item) {
                    if (defaultCode == item.id) {
                        $(obj).append("<option value='" + item.id + "' selected>" + item.name + "</option>");
                    } else {
                        $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                    }
                });
            } else {
                dggui.dialog.errors("未查询到渠道信息")
                console.log("查询数据错误");
            }
        });
    }

}*/

//初始化渠道
function initChannelWithCode(obj,produtId,defaultCode) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    var is=checkIsEmpty(produtId);
    if (!is) {
        $.post(sysInfo.basePath + '/rzsc/processing_order/channel_by_proid.do', {id: produtId}, function (result) {
            if (result.code == 0) {
                $.each(result.data, function (i, item) {
                    if (defaultCode == item.id) {
                        $(obj).append("<option value='" + item.id + "' selected>" + item.name + "</option>");
                    }else{
                        $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                    }
                });
            } else {
                console.log("查询数据错误");
            }
        });
    }

};

/**
 * 将form表单内的数据转换JSON对象
 */
function serializeObject(obj) {
    var o = {};
    var a = obj.serializeArray();
    $.each(a, function(i,v) {
        if (o[a[i].name]) {
            if (!o[a[i].name].push) {
                o[a[i].name] = [ o[a[i].name] ];
            }
            o[a[i].name].push($.trim(a[i].value) || '');
        } else {
            o[a[i].name] = $.trim(a[i].value) || '';
        }
    });
    return o;
}

/**
 * 将table表单内的数据转换JSON集合对象
 */
function serializeTableArrary(id) {
    var data = [];
    id.find('tbody').children('tr').each(function () {
        var dataList = {};
        $(this).children('td').each(function (i) {
            var name = $(this).children().attr("name");
            var value = $(this).children().val();
            if(!isEmpty(name)){
                dataList[name]=value;
            }
        })
        data.push(dataList);
    });
    return data;
}

/**
 * 验证对象中的值，是否符合验证条件
 * @param verify 验证参数
 * @param obj 验证对象
 *   {
            "name": "transactPerson",//验证字段名
            "type": "1",// 1 验证是否为空 2 是否有特殊字符  3 验证长度时候在指定范围 同时传mix和max参数 4 只能输入正整数，现在输入长度 5 不为空的是时候验证长度与特殊字符
            "msg": "员工工号"//提示信息
        },
 */
function verifyObject(verify, obj) {
    //循环验证对象
    for (var i = 0; i < verify.length; i++) {
        //获取验证参数对象
        var verifydata = verify[i];
        //获取值
        var inputValue = obj[verifydata.name];
        //获取需要验证的类型
        var type = verifydata.type;
        for (var j = 0; j < type.length; j++) {
            //验证是否为空
            if (type[j] == "1") {
                if (isEmpty(inputValue)) {
                    dgg.dialog.errors("请选择或输入" + verifydata.msg, 1000);
                    return false;
                }
                //不能超过指定长度
                if (!verifyData(inputValue, isEmpty(verifydata.mix)?1:verifydata.mix, isEmpty(verifydata.max)?200:verifydata.max)) {
                    dgg.dialog.errors(verifydata.msg+"输入的长度只能在"+verifydata.mix+"-"+verifydata.max+"之间", 1000);
                    return false;
                }
            }
            if (type[j] == "3") {
                //不能超过指定长度
                if (!verifyData(inputValue, isEmpty(verifydata.mix)?1:verifydata.mix, isEmpty(verifydata.max)?200:verifydata.max)) {
                    dgg.dialog.errors(verifydata.msg+"输入的长度只能在"+verifydata.mix+"-"+verifydata.max+"之间", 1000);
                    return false;
                }
            }
            //只能输入正整数
            if (type[j] == "4") {
                //验证是否是正整数
                if (!num_check.test(inputValue)) {
                    dgg.dialog.errors(verifydata.msg+"只能输入正整数", 1000);
                    return false;
                }
                //不能超过指定长度
                if (!verifyData(inputValue, isEmpty(verifydata.mix)?1:verifydata.mix, isEmpty(verifydata.max)?200:verifydata.max)) {
                    dgg.dialog.errors(verifydata.msg+"输入的长度只能在"+verifydata.mix+"-"+verifydata.max+"之间", 1000);
                    return false;
                }
            }
            //不为空的是时候验证长度与特殊字符
            if (type[j] == "5") {
                if (!isEmpty(inputValue)) {
                    //不能有特殊字符
                    if (checkSymbol(inputValue)) {
                        dgg.dialog.errors(verifydata.msg+"不能有特殊字符", 1000);
                        return false;
                    }
                    //不能超过指定长度
                    if (!verifyData(inputValue, verifydata.mix, verifydata.max)) {
                        dgg.dialog.errors(verifydata.msg+"输入的长度只能在"+verifydata.mix+"-"+verifydata.max+"之间", 1000);
                        return false;
                    }
                }
            }
            if(type[j] == "6"){
                if(!checkNum(inputValue)){
                    dgg.dialog.errors(verifydata.msg+"只能是整数或者小数", 1000);
                    return false;
                }
                //不能超过指定长度
                if (!verifyData(inputValue, verifydata.mix, verifydata.max)) {
                    dgg.dialog.errors(verifydata.msg+"输入的长度只能在"+verifydata.mix+"-"+verifydata.max+"之间", 1000);
                    return false;
                }
            }
        }
    }
    return true;
}


/**
 * 跳转到生产订单详情
 * @param orderNo 编号
 * @param orderId id
 */
function openOrderInfoDetail(scProductOrderNo, scOrderId) {
    window.parent.updateTab('生产详情:' + scProductOrderNo, sysInfo.basePath +
        "/order_detail/index.do?scOrderId=" + scOrderId);
}
/**
 * 查看商机详情
 */
function openBusinessNoDetail(businessId,businessNo){
    window.parent.updateTab('商机详情:' + businessNo, busBaseUrl + '/bus/com/business_detail.html?businessId=' + businessId);
}


/**
 * 校验数字（包含正负整数，0以及正负浮点数）就返回true
 **/
function isNumber(val){
    var regPos = /^\d+(\.\d+)?$/; //非负浮点数
    //var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
    if(checkEmpty(val)){
        if(regPos.test(val)){
            return true;
        }else{
            return false;
        }
    }else{
        return true;
    }

}

/**
 * 校验数字并提示（包含正负整数，0以及正负浮点数）就返回true
 **/
function isNumberTip(obj,msg,msg2){
    if(!isNumber(obj.val())){
        dggui.dialog.tip(msg,obj,{tipsMore: true});
        return false;
    }else{
        if(checkEmpty(msg2)&&obj.val()>99999999999){
            dggui.dialog.tip(msg2,obj,{tipsMore: true});
            return false;
        }
        return true;
    }

}


/**
 * 校验正整数
 **/
function isIntNumber(val){
    var regPos =  /^[0-9]\d*$/; //正整数
    if(checkEmpty(val)){
        if(regPos.test(val)){
            return true;
        }else{
            return false;
        }
    }else{
        return true;
    }

}
/**
 * 校验正整数并提示
 **/
function isIntNumberTip(obj,msg){
    if(!isIntNumber(obj.val())){
        dggui.dialog.tip(msg,obj,{tipsMore: true});
        return false;
    }else{
        return true;
    }
}
/**
 * 校验年龄大小并提示
 **/
function ageCheckTip(obj,msg){
    if(obj.val()>999){
        dggui.dialog.tip(msg,obj,{tipsMore: true});
        return false;
    }else{
        return true;
    }
}
/**
 * 校验邮箱并提示
 **/
function isEMail(obj,msg){
    //var rex = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
    var rex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
    if(!rex.test(obj.val())){
        dggui.dialog.tip(msg,obj,{tipsMore: true});
        return false;
    }else{
        return true;
    }
}

/**
 * 将传入数据转换为字符串,并清除字符串中非数字与.的字符
 * 按数字格式补全字符串
 * @param num
 * @returns {*}
 */
function getFloatStr(num){
    var numTemp =num;
    num += '';
    if(""==num){
        return;
    }
    if(numTemp<0){
        num = num.replace(/\-[^0-9|\.]/g, ''); //清除字符串中的非数字非.字符
    }else{
        num = num.replace(/[^0-9|\.]/g, ''); //清除字符串中的非数字非.字符
    }

    if(/^0+/) //清除字符串开头的0
        num = num.replace(/^0+/, '');
    if(!/\./.test(num)) //为整数字符串在末尾添加.00
        num += '.00';
    if(/^\./.test(num)) //字符以.开头时,在开头添加0
        num = '0' + num;
    /*    num += '00';        //在字符串末尾补零
     if(numTemp<0){
     num = num.match(/\-\d+\.\d{2}/)[0];
     }else {
     num = num.match(/\d+\.\d{2}/)[0];
     }*/

    return returnFloat(num);
}

//自动补零
function returnFloat(value){
    var xsd=value.toString().split(".");
    if(xsd.length==1){
        value=value.toString()+".00";
        return value;
    }
    if(xsd.length>1){
        if(xsd[1].length==0){
            value=value.toString()+"00";
        } else if(xsd[1].length<2){
            value=value.toString()+"0";
        }else if(xsd[1].length>=2){
            value = parseFloat(value.toString()).toFixed(2);
        }
        return value;
    }
}

/**
 * 验证身份证号
 * @param obj
 * @returns {boolean}
 */
function isIdCard(obj,msg) {
    var str = obj.val();
    var reg = /^[A-Za-z0-9]+$/;
    if(!reg.test(str)){
        dggui.dialog.tip(msg,obj,{tipsMore: true});
        return false
    }else {
        return true;
    }
}


/**
 * 验证是否为身份证号
 * @param obj
 * @returns {boolean}
 */
function isCardId(obj) {
    var objVal = obj.val();
    var len = objVal.length,
        re;
    if (objVal == "" || objVal == null) {
        return true;
    } else {
        if (len == 15)   re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/);
        else if (len == 18)   re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/);
        else {
            return false;
        }
        var a = objVal.match(re);
        if (a != null) {
            if (len == 15) {
                var D = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
                var B = D.getYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
            }
            else {
                var D = new Date(a[3] + "/" + a[4] + "/" + a[5]);
                var B = D.getFullYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
            }
            if (!B) {
                return false;
            }
        }
        if (!re.test(objVal)) {
            return false;
        }
        return true;
    }
}


function calcContractMoney(calc, len) {
    var unitPriceInput = $(calc);
    unitPriceInput.val(unitPriceInput.val().replace(/[^\d.]/g, "")); // 清除“数字”和“.”以外的字符
    unitPriceInput.val(unitPriceInput.val().replace(/^\./g, ""));// 验证第一个字符是数字而不是.
    unitPriceInput.val(unitPriceInput.val().replace(/\.{2,}/g, "."));// 只保留第一个.
    unitPriceInput.val(unitPriceInput.val().replace(/^0{2,}/g, "0"));//开始不能连续输入两个0
    unitPriceInput.val(unitPriceInput.val().replace(".", "$#$").replace(/\./g, "").replace("$#$", "."));
    unitPriceInput.val(unitPriceInput.val().replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'));// 只能输入两个小数
    var unitPrice = parseInt(unitPriceInput.val() || 0);
    if (unitPrice.toString().length > len) {
        unitPrice = unitPrice.toString().substring(0, 11);
        unitPriceInput.val(unitPriceInput.val().replace(/^\d{12,}/g, unitPrice));
    }

    var value = calc.value;
    if ('' != calc.value.replace(/\d{1,}\.{0,1}\d{0,}/, '')) {
        calc.value = calc.value.match(/\d{1,}\.{0,1}\d{0,}/) == null ? '' : calc.value.match(/\d{1,}\.{0,1}\d{0,}/);
    }
    for (var i = 0; ; i++) {
        if (/^0/.test(value) && !/^0\./.test(value) && value.length >= 2) {
            value = value.substring(1, value.length);
        } else {
            calc.value = value;
            break;
        }
    }
}

/**
 * 保留两位小数
 * @param calc
 */
function calcContractMoneyF(calc, len) {
    var unitPriceInput = $(calc);
    unitPriceInput.val(unitPriceInput.val().replace(/[^\d.-]/g, "")); // 清除“数字”和“.”，“-”以外的字符
    unitPriceInput.val(unitPriceInput.val().replace(/^\./g, ""));// 验证第一个字符是数字而不是.
    unitPriceInput.val(unitPriceInput.val().replace(/\.{2,}/g, "."));// 只保留第一个.
    unitPriceInput.val(unitPriceInput.val().replace(/\-{2,}/g, "-"));// 只保留第一个-
    unitPriceInput.val(unitPriceInput.val().replace(/^0{2,}/g, "0"));//开始不能连续输入两个0
    unitPriceInput.val(unitPriceInput.val().replace(".", "$#$").replace(/\./g, "").replace("$#$", "."));
    unitPriceInput.val(unitPriceInput.val().replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'));// 只能输入两个小数
    if (unitPriceInput.val().length > 1) {
        var unitPrice = unitPriceInput.val();
        var len = parseInt(unitPrice.toString().lastIndexOf("-"));
        if (len > 0) {
            unitPrice = unitPrice.toString().substring(0, unitPrice.toString().lastIndexOf('-'));
            unitPriceInput.val(unitPrice);
        }
    }
    var unitPrice = parseInt(unitPriceInput.val() || 0);
    if (unitPrice.toString().length > len) {
        unitPrice = unitPrice.toString().substring(0, 11);
        unitPriceInput.val(unitPriceInput.val().replace(/^\d{12,}/g, unitPrice));
    }

    var value = calc.value;
    if ('' != calc.value.replace(/\d{1,}\.{0,1}\d{0,}/, '')) {
        calc.value = calc.value.match(/\d{1,}\.{0,1}\d{0,}/) == null ? '' : calc.value.match(/\d{1,}\.{0,1}\d{0,}/);
    }
    for (var i = 0; ; i++) {
        if (/^0/.test(value) && !/^0\./.test(value) && value.length >= 2) {
            value = value.substring(1, value.length);
        } else {
            calc.value = value;
            break;
        }
    }
}

/**
 * @param str 需要处理的字符串
 * @param lenth 最大显示长度  默认15
 * @param str1 超过最大长度后用{str1}代替显示 默认...
 * @returns {*}
 */

function strInterception(str,lenth,str1){
    lenth = isEmpty(lenth)  ? 15 : parseInt(lenth);
    str1 = isEmpty(str1) ? "..." : str1;
    if(isEmpty(str)){
        return "";
    }
    if(str.length > lenth){
        str = str.substr(0,lenth);
        return str+str1;
    }
    return str;
}


/**
 * 根据小数位数格式化金额
 * @param number 要格式化的数字
 * @param decimals 保留几位小数
 * @param dec_point 小数点符号，不输入默认英文点“.”
 * @param thousands_sep 千分位符号，不输入默认英文逗号“,”
 * @returns 例：var num=fmoney(1234567.089, 2, ".", ",");//返回结果：1,234,567.09
 */
function toBit(number, obj, dec_point, thousands_sep) {
    var decimals = $('#'+obj).val()?$('#'+obj).val():0;
    number = (number + '').replace(/[^0-9+-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.ceil(n * k) / k;
        };
    s = (prec ? n.toFixed(prec) : '' + Math.round(n)).split('.');
    //s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    var re = /(-?\d+)(\d{3})/;
    while (re.test(s[0])) {
        s[0] = s[0].replace(re, "$1" + sep + "$2");
    }

    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}

/**
 * 查看电话号码
 */
function showNumberV3(tableName, tableId, number){
    var userId = $("#userEntityId").val();
    $.ajax({
        type:"get",
        url: sysInfo.cmsBaseUrl + "/api/cms/test/user_decrypt.do",
        dataType:'json',
        headers:util.getHeader(),
        data:{"str": number,userId:userId},
        success:function(result) {
            if (result.code == -1) {
                // Layer.message('系统异常，请联系管理员','2');
            }else if (result.code == -2) {
                // Layer.message('未登录','5');
            }
            else{
                if(result.code == '0'){
                    var numberCiphertext = result.data;
                    if("" != numberCiphertext && null != numberCiphertext){
                        // layer.msg(numberCiphertext, {
                        //     time: 5 * 1000
                        // });
                        dggui.dialog.succeed(numberCiphertext,5*1000);
                        $.ajax({
                            type: "post",
                            url: sysInfo.cmsBaseUrl + "/api/cms/show_number_record/save.do",
                            data: {
                                userId: userId,
                                tableName: tableName,
                                tableId: tableId,
                                number: number
                            },
                            dataType: 'json',
                            success: function (data){
                                console.log(data);
                            }
                        });
                    } else {
                        dggui.dialog.errors("客户无号码");
                    }
                } else {
                    dggui.dialog.errors(result.msg);
                }
            }
            // layer.closeAll('loading');
        },
        error:function(error){
            dggui.dialog.errors('服务器异常，请联系管理员')
        }
    });

}

/**
 * 根据产品id查询产品信息(下拉框)
 */
function initProductInfo(obj,proId,defaultCode) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    var is=checkIsEmpty(proId);
    if(!is){
        $.post(sysInfo.basePath + '/rzsc/common/find_product_info.do', {proId: proId}, function (result) {
            if (result.code == 0) {
                $.each(result.data.goodsList, function (i, item) {
                    if (defaultCode == item.id) {
                        $(obj).append("<option value='" + item.id + "' selected>" + item.goodsAttribute + "</option>");
                    } else {
                        $(obj).append("<option value='" + item.id + "'>" + item.goodsAttribute + "</option>");
                    }
                });
            } else {
                console.log("查询数据错误");
            }
        });
    }
};


/**
 * 根据产品id查询产品信息(商品属性)(弹窗),
 * viewObj 需要改变值的对象；
 * removeObj需要清空值、重新加载的下拉框对象（渠道）；
 */
function  initProductInfoDialog(params,viewObj,removeObj) {
    var productId=params.productId;
    if (checkIsEmpty(productId)) {
        dggui.dialog.errors("产品ID为空");
        return;
    };

    var paramsJson = JSON.stringify(params);
    dggui.dialog.loading();
    $.ajax({
        url: sysInfo.basePath + "/rzsc/processing_order/product_info.html",
        data: {params: paramsJson},
        success: function (res) {
            if (res.msg == null) {
                dggui.dialog.open({
                    title:'选择商品属性',
                    content:res,
                    area:'700px',
                    success:function (layero,index) {
                        dggui.dialog.loading('close');
                    },
                    yes:function(layero,index) {
                       var goodId= $('#chooseCommodityList li[class="active"]').attr("data-id");
                       var goodName= $('#chooseCommodityList li[class="active"]').text();
                        if (checkIsEmpty(goodId)) {
                            dggui.dialog.errors("请选择至少一个商品");
                            return;
                        }if (checkIsEmpty(goodName)) {
                            dggui.dialog.errors("请选择至少一个商品");
                            return;
                        }
                   $(viewObj).attr("data-id", goodId);
                   $(viewObj).val(goodName);
                   //初始化渠道，根据商品查渠道接口出来后解开
                   dggui.use(['select2'], function () {
                       var select2 = dggui.select2;
                       initChannelWithCode(removeObj, productId);
                       select2.render({
                           placeholder: "请选择",
                           allowClear: true,
                           elem: $(removeObj),
                       });
                   });
                   dggui.dialog.close(layero);
                }
                })
            }else {
                dggui.dialog.loading('close');
                dggui.dialog.errors(res.msg);
            }
        }
    });

};

/**
 * select2设置默认选中
 */
function select2Defalut(id, name, obj) {
    var data = {
        id: id,
        text: name
    };
    if (obj.find("option[value='" + data.id + "']").length) {
        obj.val(data.id).trigger('change');
    } else {
        // 创建DOM选项并在默认情况下进行预选择
        var newOption = new Option(data.text, data.id, true, true);
        // 将其附加到select
        obj.append(newOption).trigger('change');
    }
}



/**
 * 商品+渠道id判重
 * 涉及业务（下单、新增产品、更新产品）
 */
function uniqueGoodAndChannel(obj) {
    var res = false;
    var arry = [];
    $.each(obj, function (i, item) {
        var productGoodsId= item.productId;
        var channelId = item.channelId;
        if(checkIsEmpty(productGoodsId)
        ||checkIsEmpty(channelId)){
            return res;
        }
        var data = productGoodsId + channelId;
        if (arry.length > 0) {
            if (arry.lastIndexOf(data) ==-1) {
                arry.push(data);
            }
        }
        if (i == 0) {
            arry.push(data);
        }
    });
    if (arry.length != obj.length) {
        res = true;
    }
    return res;
}

/**
 * 初始化节点信息(根据渠道+商品)
 */
function initNode(obj,channelId,goodsId) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/flow/nodes_by_goodsId_channelId.do', {channelId: channelId,goodsId:goodsId}, function (result) {
        if (result.code == 0) {
            $.each(result.data, function (i, item) {
                $(obj).append("<option value='" + item.name + "'>" + item.name + "</option>");
            });
        } else {
            console.log("查询数据错误");
        }
    });

};

/**
 * 初始化商品列表（下拉框列表）
 */
function initGoodsSelected(obj,productId) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/flow/query_goods_by_productId.do', {productId: productId}, function (result) {
        if (result.code == 0) {
            $.each(result.data, function (i, item) {
                $(obj).append("<option value='" + item.id + "'>" + item.goodsAttribute + "</option>");
            });
        } else {
            console.log("查询数据错误");
        }
    });

};

/**
 * 初始化节点信息（所有）
 */
function initAllNode(obj) {
    $(obj).find("option").remove();
    $(obj).append("<option value=''>请选择</option>");
    $.post(sysInfo.basePath + '/rzsc/flow/query_all_nodes.do', function (result) {
        if (result.code == 0) {
            $.each(result.data, function (i, item) {
                $(obj).append("<option value='" + item.name + "'>" + item.name + "</option>");
            });
        } else {
            console.log("查询数据错误");
        }
    });
    }
    /**
    * 初始化团队
    */
    function initTeam(obj,code) {
        $(obj).find("option").remove();
        $(obj).append("<option value=''>请选择</option>");
        $.post(sysInfo.basePath + '/rzsc/punish/query_team.do',{code:code}, function (result) {
            if (result.code == 0) {
                $.each(result.data, function (i, item) {
                    $(obj).append("<option value='" + item.id + "'>" + item.name + "</option>");
                });
            } else {
                console.log("查询数据错误");
            }
        });

    };

    function handleResult(json){
        for (let p in json.resultData) {
            //如果值为空，默认设置为0
            if(checkIsEmpty(json.resultData[p])){
                $("#"+p).text(0);
            }else{
                $("#"+p).text(json.resultData[p]);
            }
        }
    }

/**
 * 当前登录人下属所有部门弹窗
 */
function queryAllDep(obj) {
    $(obj).selectTree({
        url: sysInfo.basePath + '/rzsc/common/organ_tree_data.do',
        //check:true,   //默认为false，单选；设置为 true ，为多选
        code: 'id',//指定获取id的字段名
        close: true,
        search:true,//开启搜索
        idKey: "id",//指定id
        pIdKey: "parentId",//指定pId
        otherParam: {
            type: 'all'
        }
    });
}

function getTime() {
    var date = new Date();
    var day=date.getDate();
    var month = date.getMonth()+1;
    if (month < 10) {
        month = "0" + month;
    }
    if (day < 10) {
        day = "0" + day;
    }
    var currMonth = date.getFullYear() + "-" + month + "-" + "01";
    console.log(currMonth);
    var currDate=date.getFullYear()+"-" + month + "-" +day ;
    console.log(currDate);
    var dateArr = new Object();
    dateArr.currMonth=currMonth;
    dateArr.currDate=currDate;
    var dateRange=currMonth+" ~ "+currDate;
    return dateRange;
}


function  interestTypeTranslate(data) {
    var interestType = '';
    switch (data) {
        case 1:
            interestType="住宅";
            break;
        case 2:
            interestType = "商铺";
            break
        case 3:
            interestType = "公寓";
            break;
        default:
            interestType = "";
    }
    return interestType;
}

function refundTypeTranslate(data) {
    var refundType = '';
    switch (data) {
        case 1:
            refundType="按揭";
            break;
        case 2:
            refundType = "全款";
            break
        default:
            refundType = "";
    }
    return refundType;
}


/**
 * 日期时间格式化工具
 * @param
 * @author
 * @returns
 */
Date.prototype.format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

/** 验证数据是否是数字和小数 */
function checkNum(val)
{
    var re = /^(([1-9][0-9]*\.[0-9][0-9]*)|([0]\.[0-9][0-9]*)|([1-9][0-9]*)|([0]{1}))$/;
    if (!re.test(val))
    {
        return false;
    }
    return true
}

/** 验证数据 返回true则通过 */
function verifyData(data, min, max) {
    if (null == data || undefined == data || data.length < min || data.length > max) {
        return false;
    }
    return true;
}



/*---------------------------------------------[ 正则 ]---------------------------------------------*/
var num_check = /^[1-9]\d*$/,  // 正整数验证
    num_check_1 = /^\d*$/,  // 正整数验证
    //money_check_1 = /^[1-9]\d{0,6}\.?[0-9]{0,2}$/,  // 金额验证
    money_check_1 = /^[1-9]\d{0,6}(\.[0-9]{2}|\.[0-9]|\.|)$/,  // 金额验证,商标注册底单商品金额验证js
    money_check = /^[1-9][0-9]{0,6}(\.[0-9]{2}|\.[0-9]|)$/,  // 金额验证
    blank_contract_money_check = /^[1-9]\d{0,7}(.00|.0|)$/,  // 空白合同金额验证
    html_check = /.*[<'">].*/,   //不允许输入小引号
    html_check_1 = /.*[<">].*/,   //允许输入小引号
    Num_check = /^([+-]?)\d*\.?\d+$/;


//特殊字符验证，不允许输入小引号
function checkSymbol(value) {
    return html_check.test(value);
}